iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 27
1
自我挑戰組

轉職道上的萌芽人生 − 自學程式開發ing系列 第 27

Day 27- 191013學習筆記 Git

  • 分享至 

  • xImage
  •  

提醒:由於看到這系列鐵人訂閱人數漸漸變多,標記一下這些內容是在「非常萌新時期」所寫,更多技術內容請參考我的 Github,歡迎跟我一起討論 ^ ^


今天不小心花了太多時間在研究求職網開的技能需求,後來又因為跟朋友討論 Git,很零散了看了一些 Git 的文章,然後..就快要明天啦XD 所以只能趕緊凌亂的寫一下今天看到的一些收穫。


設定自動完成 git 指令

  • 今天發現有官方 git-completion.bash 腳本,可以用來自動完成 git 指令,因此就順手安裝了。
    (例如:輸入 git br 後,按 Tab 直接自動補足為 git branch)
    在終端機依照以下指令進行設定即可:
$ curl https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash > ~/.git-completion.sh
$ echo "" >> ~/.bash_profile
$ echo "# git completion" >> ~/.bash_profile
$ echo "[ -f ~/.git-completion.sh ] && . ~/.git-completion.sh" >> ~/.bash_profile
$ source ~/.bash_profile

其他補充

  • .gitignore:當你在 GitHub 創建新的 repository 時,就會看到選項問你要建立哪一種 .gitignore 文件。此文件中可以設定要讓 git 在 add 時,忽略哪些檔案。
    (例如:.exe 等,可能不需要 commit,而此種檔案可能會有很多,造成你的 git status 很雜亂,因此有了 .gitignore 誕生,來幫助你忽略特定檔案類型)
    (可以 -f--force 強制 add)
  • git config -l前面提到可以 git config 來對 git 做基本設定,而其設定內容可以透過 -l 來查看。
  • 查看修改內容:
    • git diff (檔案名):查看該檔案被修改的內容。
      (若沒指定則顯示全部有修改的檔案)
    • git diff --cached:查看 index 裡所有修改的內容。
    • git show (指定commit):查看該 commit 所做的修改內容。
      (若沒指定則顯示當下的 commit)
      範例如下:
      https://ithelp.ithome.com.tw/upload/images/20191014/2012098127pzC5IcNk.png
  • git log --pretty=raw:log 中顯示 parent 的資訊。
    (可看到該commit從哪裡來的,而該 commit 只是紀錄下跟 parent 差異的地方。)
    範例如下:
    https://ithelp.ithome.com.tw/upload/images/20191014/201209817xtIpruOfb.png
  • git mv:move。對 git 而言,移動檔案&重新命名是同一個概念。
    (重新命名:將 名稱A 的檔案內容移動到 名稱B)
    • 此指令會同時將其造成的修改,進行 add。
    • git mv (檔案) (資料夾):移動檔案到該資料夾。
    • git mv (舊名稱) (新名稱):重新命名。
  • git 只在意「檔案」的內容,追蹤「檔案」不追蹤「資料夾」。因此會自動忽略空資料夾。
  • git reflog:查看 HEAD 的修改紀錄。
    (任何會改變 HEAD 的動作都會記錄下來,如reset、commit、rebase 等)
    https://ithelp.ithome.com.tw/upload/images/20191014/20120981xJvS5E8EU1.png
  • git log -g:也可在 log 中顯示 reflog 訊息。
  • git commit --amend:其會強制修改覆蓋掉前一個 commit,而此時會使 ID 發生改變。(可簡單的使用git reset --soft HEAD@{1}恢復)
  • checkout:把指定內容給你。從這個定義出發,就能推斷出:
    • git checkout HEAD (指定檔案):把HEAD下的該檔案內容給你。
      因此你會得到在編輯之前的檔案 = 還原 "檔案內容"。
    • git checkout (指定分支):把該分支的內容給你。
      因此你會得到該分支的內容 = 移動到該分支。
    • git checkout (指定commit):把該commit的內容給你。
      因此你會得到該commit的內容 = 另外獨立出一個分支,內容為 HEAD 在該 commit。
      (而此分支是未命名的,也可以將此命名為一個新分支)

參與貢獻開源碼

  1. 將該專案 folk 複製一份到自己的 GitHub。
  2. 將自己 folk 的那份 clone 到 local。
  3. 建立自己的分支以進行開發。
  4. 完成後再同步回去自己 folk 的那份。
  5. 再回到原始專案頁點選 new pull request,請求合併到原始專案中。
  6. 對方同意後,即可做出第一步貢獻。並以 upstream 設定與其保持同步。
    (每個專案有不同的貢獻方式規定,可參閱 readme.md)

今天在求職網上先搜尋了前端,不專業的撿了些關鍵字,也放上來當作參考。
https://ithelp.ithome.com.tw/upload/images/20191014/20120981UiR3EE4Wdx.png


上一篇
Day 26- 191012學習筆記 Git - Tag / 改寫 commit
下一篇
Day 28- 191014學習筆記 初窺 Cookie & Session
系列文
轉職道上的萌芽人生 − 自學程式開發ing30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言